package cz.muni.fi.pb138.mathml_canonicalizator;

/**
 *
 * @author ndru
 */
public interface Transformer {
    
    /**
     * Adds a child to this transformer.
     * 
     * @param n The node to be added as a child of this transformer.
     */
    void addChild(Node n);
    
    /**
     * Sets the text content of this transformer.
     * 
     * @param s The new text content of the given transformer.
     */
    void setTextContent(String s);
    
    /**
     * Transforms the transformer node by the rules given in the transformers
     * implementation. It is however possible that the node will be already
     * partly normalized before this method is called, so is works mainly as
     * getter for the normalized node.
     * 
     * @return The normalized node.
     */
    Node transform();    
}
